#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
检查macOS辅助功能权限脚本
这个脚本用于检查并帮助用户配置AppleScript所需的辅助功能权限
"""

import subprocess
import sys

# AppleScript代码，用于测试辅助功能权限
applescript = '''
try
    tell application "System Events"
        set process_list to name of every process
        return "SUCCESS"
    end tell
on error
    return "PERMISSION_REQUIRED"
end try
'''

def check_accessibility_permission():
    """检查是否有辅助功能权限"""
    try:
        # 执行AppleScript
        result = subprocess.run(
            ['osascript', '-e', applescript],
            capture_output=True,
            text=True,
            check=True
        )
        
        output = result.stdout.strip()
        
        if output == "SUCCESS":
            print("✅ 辅助功能权限检查通过！")
            print("\n您的系统已正确配置权限，可以控制Chrome窗口。")
            return True
        elif output == "PERMISSION_REQUIRED":
            print("❌ 辅助功能权限缺失！")
            print("\n请按照以下步骤配置权限：")
            print("1. 打开 '系统设置' (System Settings)")
            print("2. 点击 '隐私与安全性' (Privacy & Security)")
            print("3. 选择 '辅助功能' (Accessibility)")
            print("4. 确保 '终端' (Terminal) 和 'Python Launcher' 已被添加并启用")
            print("5. 如已启用，请尝试先禁用再重新启用")
            print("6. 重启Chrome浏览器和扩展")
            
            # 尝试显示系统对话框
            try:
                display_script = '''
                display dialog "需要辅助功能权限才能控制Chrome窗口。\n\n请前往：\n系统设置 > 隐私与安全性 > 辅助功能\n\n确保已授予终端和Python权限。" buttons {"确定", "打开系统设置"} default button 1 with title "权限配置"
                set button_pressed to button returned of result
                if button_pressed is "打开系统设置" then
                    do shell script "open 'x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility'"
                end if
                '''
                subprocess.run(['osascript', '-e', display_script], check=False)
            except:
                pass
                
            return False
        else:
            print(f"❓ 未知结果: {output}")
            return False
            
    except subprocess.CalledProcessError as e:
        print(f"❌ 执行AppleScript时出错: {e}")
        print("请确保您的系统允许执行AppleScript。")
        return False
    except Exception as e:
        print(f"❌ 发生错误: {e}")
        return False

def main():
    """主函数"""
    print("\n=== macOS窗口置顶权限检查 ===\n")
    
    # 检查权限
    has_permission = check_accessibility_permission()
    
    print("\n=== 额外提示 ===")
    print("1. 如果您使用的是VS Code或其他IDE运行脚本，可能还需要授予该应用程序权限")
    print("2. 某些macOS版本可能需要重启应用程序才能使权限变更生效")
    print("3. 如果问题仍然存在，请尝试重新安装扩展并运行build.sh脚本")
    
    return 0 if has_permission else 1

if __name__ == "__main__":
    sys.exit(main())
